"""
获取到元素的信息

元素的状态:
 是否可用
 是否可见
 是否被选中

 面试题: 1 元素的状态有哪些?
        2. 对于元素不可见,你是怎么解决的?
        3.1.如果页面元素定位不到,有没有遇见过,怎么解决的?
                答案就是第二道面试题
        4. 对于动态id你是怎么解决的?


"""

import time

from selenium import webdriver
from selenium.webdriver.common.by import By

# 1. 先创建浏览器驱动对象
driver=webdriver.Chrome()
driver.maximize_window()  #最大化
# 最小化
# driver.minimize_window()   #不用
# 设置浏览器的宽高
# driver.set_window_size(100,100)   #了解不用
# # 设置浏览器的位置
# driver.set_window_position(100,100)  # 像素:  px  了解


# 2 通过get方法打开页面
driver.get("http://localhost:8081/regA.html")
#定位userA
ele=driver.find_element(By.CSS_SELECTOR,"#userA")
ele.send_keys("admin")
#获取元素的大小
# print(ele.size)
# # 获取元素的文本
# print("ele:",ele.text)
#
#
# ele2=driver.find_element(By.CSS_SELECTOR,"#h1")
# print("ele2:",ele2.text)

# 获取元素的属性  输入框里面的值,是元素的一个属性 他的属性名就是 value
# # attribute  读音  e chui  biu  te
# print("get_property:",ele.get_property("name"))
# print("get_attribute:",ele.get_attribute("name"))
# print("get_dom_attribute:",ele.get_dom_attribute("name")) #必须要在元素中看得见这个属性



#元素的状态
# 是否可用          is_enabled()---->true 可用 false 不可用
# 是否可见
# 是否被选中
# print(ele.is_enabled())
#判断注册A里面的取消按钮是否可用
#结果是 False

# 是否可见  is_displayed()   元素虽然看不到,但是我们可以定位到,但是我们不能对其进行操作
# 让他在页面内可见 ------>通过js修改他的display的属性值

ele_span=driver.find_element(By.CSS_SELECTOR,"#sp1")
driver.execute_script("arguments[0].style.display='block'",ele_span)
# print(ele_span.get_attribute("id"))
# print(ele_span.is_displayed())
print(ele_span.text)



# 元素是否被选中  is_selected() --->针对的是单选框和复选框   被选中是 ture 未选中是 false












time.sleep(100)

# 4. 关闭浏览器驱动对象
driver.quit()  #关闭浏览器
